Joystick input arbitration

ABSTRACT

The present disclosure relates to a system and method for arbitrating between joystick inputs. The system generates a first command based on the first input if the first input has a non-zero value, and generates a second command based on the second input if the first input has a zero value and the second input has a non-zero value. The system thereby allows two different inputs to control a single commanded function.

TECHNICAL FIELD

The present disclosure relates to processing joystick controls forearthmoving machines.

BACKGROUND

Machines perform a variety of tasks, such as moving material, roadmaintenance, and excavation. Such machines include wheel loaders,excavators, track-type tractors, haul trucks, and the like. Many suchmachines have a device for taking an operator input and a hydraulicsystem for turning the operator input into a machine function. Suchfunctions may include dumping a bucket, raising a boom, lowering ablade, raising a dump body, and the like.

The operator may provide input through the use of a joystick. Functionson the machine may be commanded by tilting the joystick in one directionor another. In addition, there may be additional inputs on the joysticksuch as buttons, thumbrollers, or rocker switches. The additional inputsusually command different functions. However, it may be desirable forthe operator to be able to control a single function on the machine withmultiple inputs. Motivation may include regional preference or operatorfatigue.

When a single machine function is commanded from two or more differentinput devices, there is a need to arbitrate between the inputs in amanner that avoids counterintuitive behavior of the machine function. Inaddition, harsh transitions of the machine function that can shake themachine and operator or spill the load are to be avoided.

SUMMARY OF THE INVENTION

In one aspect of the current disclosure, a method for generating acommand by arbitrating between inputs from a first input device and asecond input device on a joystick is disclosed. The method comprisesreceiving a first input from the first input device, receiving a secondinput from the second input device, generating a first command based onthe first input if the first input has a non-zero value, and generatinga second command based on the second input if the first input has a zerovalue and the second input has a non-zero value.

In another aspect of the current disclosure, a system for generating acommand by arbitrating between inputs from a first input device and asecond input device is disclosed. The system comprises a joystick havinga first input device and a second input device. Further, the systemcomprises a controller for receiving a first input from the first inputdevice and second input from the second input device, generating a firstcommand based on the first input if the first input has a non-zerovalue, and generating a second command based on the second input if thefirst input has a zero value and the second input has a non-zero value.

In another aspect of the current disclosure, a method for generating acommand by arbitrating between inputs from a first input device and asecond input device on a joystick is disclosed. The method comprisesreceiving a first input from the first input device, receiving a secondinput from the second input device, generating the command based on theearlier of either of the first input or second input having a non-zerovalue.

In another aspect of the current disclosure, a system for generating acommand by arbitrating between inputs from a first input device and asecond input device is disclosed. The system comprises a joystick havinga first input device and a second input device. The system furthercomprises a controller for receiving a first input from the first inputdevice, receiving a second input from the second input device, andgenerating the command based on the earlier of either of the first inputor second input having a non-zero value.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a depiction of a machine for use with the system and methodsof the current disclosure

FIG. 2 is a depiction of another machine for use with the system andmethods of the current disclosure

FIG. 3 is a depiction of a joystick for use with the system and methodsof the current disclosure

FIG. 4 is a diagram of a hydraulic system for use with the system andmethods of the current disclosure

FIG. 5 is a logic diagram for use with the system and methods of thecurrent disclosure

FIG. 6 is a plot showing inputs and outputs consistent with the systemand methods of the current disclosure

FIG. 7 is a plot showing inputs and outputs consistent with the systemand methods of the current disclosure

DETAILED DESCRIPTION

Description of Machine (LWL); Include Description of HEX; Work Tool(Bucket, Pallet Fork, Grapple), Engine, Pump, Valve, Cyclinder;

The present disclosure relates to joystick controls for a machine 10such as a wheel loader or an excavator. The machine 10, as shown inFIGS. 1 and 2, has an implement such as a bucket 20 pivotably mounted toa first end of a boom 30. A second end of the boom 30 is pivotablymounted to the frame of the machine 10. Hydraulic excavators may have anadditional member, known as a stick 35, between the boom 30 and bucket20. Force for pivoting the boom 30, stick 35, and bucket 20 is providedby hydraulic cylinders 50 that are connected to them by linkages 40.Hydraulic power for the hydraulic cylinders 50 is typically provided bya hydraulic pump 60 coupled to an engine. Flow from the hydraulic pump60 to the hydraulic cylinders 50 is controlled by displacing a valve 70.The valve 70 may be displaced manually, by a pilot hydraulic system, orby an electrohydraulic system.

In the case of the electrical solenoid, the valve 70 would be controlledas part of an electrohydraulic system. An electrohydraulic systemreceives an operator's input from one or more input devices, processesthe input in a controller 140, produces a command 130 to the valve 70,and produces a commanded movement to a hydraulic cylinder 50.

A joystick 80 as shown in FIG. 3 is commonly used as an operatorinterface in earthmoving machines. Movement of the joystick 80 oractivation of input devices on the joystick 80 corresponds to inputsinto the controller 140 of the electrohydraulic system. Input devices onthe joystick 80 can include buttons 90, thumbrollers 100, rockerswitches 110, triggers 120 and the like. Table 1 below illustratesjoystick inputs and some commonly used commands.

TABLE 1 Input Command Joystick forward Boom lower Joystick aft Boomraise Joystick left Bucket rack Joystick right Bucket dump Buttons,rollers, rockers, Horn, shift, forward/neutral/reverse, triggers, etc.kickout, autodig, etc.

It is recognized in the present disclosure that there are certainearthmoving applications where multiple joystick inputs may correspondto the same command. For instance, bucket rack and bucket dump may becommanded by either joystick left/joystick right or thumbrollerup/thumbroller down. In this example, the bucket 20 may be commanded torack (pivoted toward the rear of the machine 10) by tilting the joystick80 to the left. The bucket 20 may be commanded to dump (pivoted towardthe front of the machine 10) by tilting the joystick 80 to the right. Inaddition, the bucket 20 may be commanded to rack by moving the rockerswitch 110 forward. The bucket 20 may be commanded to dump by moving therocker switch 110 down. It should be obvious to a person of ordinaryskill in the art that the concept is not limited to the example inputs,and could be extended to any other combination of inputs from thejoystick 80. For instance, forward/reverse joystick movement and a pairof buttons 90 could also correspond to the same command.

There are several motivations for using multiple joystick inputs tocommand the same function. First, multiple joystick inputs canaccommodate machine operators from different regions of the world. Forinstance, machine operators in North America may be trained to perform arack/dump function using a joystick tilt input, while operators inAustralia may be trained to perform a rack/dump operation using athumbroller input. A machine designer may need to accommodate bothpreferences in order to sell a global product. Second, multiple ways ofperforming a repetitive action may help prevent operator fatigue.Operators of earthmoving machines may spend an entire work shiftoperating the same machine 10. An electrohydraulic system that canreceive multiple inputs to perform the same command may give theoperator some relief. During the course of a shift, the operator mayperform a repetitive operation via one input for a period of time and asecond input for another period of time. Third, the machine 10 may pitchand roll as the boom 30 raises and lowers, and as the bucket 20 engagesthe ground or dumps material. Using inputs that require a relativelydelicate touch, such as operation of the thumbroller 100, may not beconvenient as a wheel loader decelerates into a pile of material or as ahydraulic excavator breaks into the ground. An electrohydraulic systemthat can receive multiple inputs to perform the same command may givethe operator the option of choosing a convenient input method to matchthe motion of the machine 10.

FIG. 4 shows a functional block diagram of a controller 140. Thecontroller 140 includes features well-known in the art such as amicroprocessor, memory, and input/output circuitry. The controller 140is configured to execute control software. The controller 140 as shownFIG. 4 is configured to receive at least two inputs, but it isunderstood that the current disclosure could incorporate additionalinputs. A first input 134 is received from an input device into an inputprocessing block 160. The first input 134 could consist of an analogsignal, pulse-width modulated (PWM) signal, or any other type of signalthat can be used for an input. This raw input command may then proceedfrom the input processing block 160 to an open-loop processing block170. The open-loop processing block 170 may include the function ofmaking a correlation from the raw input to an associated commandpercentage. For instance, an input of 10% of maximum range maycorrespond to 20% of command percentage, 50% may correspond to 50% ofcommand percentage, 100% may correspond to 100% of command percentage,and so on. The open-loop processing block 170 may also include adead-band range. The open-loop processing block 170 may include an inputrate limit function. The input rate limit function imposes a rate limitin order to keep the commanded signal from exceeding the capabilities ofthe electroyhydraulic system and preventing jerky movements of theimplements. The output of the input rate limit function may be limitedto a certain percentage of the maximum output each time its softwareloop executes. For example, the rate limit could be defined as 5% of themaximum allowed output per 20 ms iteration of the software loop. Theopen-loop processing block 170 may include an input filter function.Note that the open-loop processing block 170 may differ from applicationto application,

As shown in FIG. 5, the second input 136 may go through similar steps asdescribed above for the first input 134. The number and type of stepsrequired to process the inputs can vary depending on the nature of theinput and the application.

At this point, the first input 134 and second input 136 have finishedinput processing and proceed to the command arbitration block 210. Thepurpose of the arbitration block 210 is to receive first input 134 andsecond input 136 and generate an output command based on certaincriteria.

One method for arbitrating between inputs begins by assuming that oneinput has priority over the second input. For example, the commandarbitration block 210 may assume that the first input 134 has priorityover the second input 136. According to this method, a command 130 willbe generated based on the first input 134 while the first input 134 hasa non-zero value. The second input 136 will be ignored while the firstinput 134 has a non-zero value. A command 130 will only be generatedfrom the second input 136 if the first input 134 has a value of zero.The command arbitration block 210 may only generate a command based onthe second value 136 if the first input 134 has a non-zero value for apredetermined period of time. Plot A of FIG. 6 shows the inputs 134 and136, while Plot B shows the generated command 130 for this method.

Switching from the first input 134 and the second input 136 and viceversa can result in harsh transitions in the generated command 130.Therefore, the command arbitration block 210 may include a rate-shapingfunction 220. The rate-shaping function 220 may be used when the commandarbitration block 210 is transitioning from generating the command 130from the first input 134 to the second input 136 and vice versa. Therate-shaping function 220 is accomplished by subtracting the lesser ofthe command 130 that was to be generated from the greater of the command130 that was to be generated and dividing by two. The rate-shapingfunction 220 may also employ a rate-limiting technique as disclosedearlier.

As an example of practicing the first method, consider that the firstinput 134 comes from an operator tilting the joystick 80 while thesecond input 136 comes from the operator moving the thumbroller 100. Thefirst input 134 representing the joystick tilt is assumed for thisexample to have priority. The command 130 is generated from the movementof the joystick 80. If the operator moves the thumbroller 100, thesecond input 136 is ignored. If the operator releases the joystick 80,the first input 134 will settle to a zero value. Movement of thethumbroller 100 will then generate a command 130 based on the secondinput 136. The command arbitration block 210 may require the first input134 to have a zero value for a predetermined period of time, such as 0.5seconds, before generating the command 130 based on the second input136. Any movement of the joystick 80 which generates a first input 134with a non-zero value will cause the command arbitration block 210 togenerate a command 130 based on the first input 134 instead of thesecond input 136. If there is a large difference between the command 130generated from the first input 134 and what the command 130 wasgenerated from the second input 136, the rate-shaping function 220 maybe employed. The rate-shaping function 220 can prevent harsh movement ofthe boom 30 or bucket 20 than can cause the machine 10 to pitch or spillmaterial from the bucket 20.

A second method for arbitrating between inputs begins by assuming thatneither input has priority at the start of the method. According to thismethod, priority will be given to the first input received by thecommand arbitration block 210 after the start of the method. A command130 will be generated based on the first input received. The secondinput received will be ignored while the first input received has anon-zero value. A command 130 will not be generated from the secondinput value received until both inputs have a zero value for apredetermined period of time. Plot A of FIG. 6 shows the inputs 134 and136, while Plot B shows the generated command 130 for this method.

Switching between the two inputs can result in harsh transitions in thegenerated command 130. As in the previous method, the commandarbitration block 210 may include a rate-shaping function 220 to preventharsh transitions.

As an example of practicing the second method, consider that the firstinput 134 comes from an operator tiling the joystick 80 while the secondinput 136 comes from the operator moving the thumbroller 100. The firstinput 134 representing the joystick tilt is the first input received bythe command arbitration block 210 and is therefore given priority. Thecommand 130 is generated from the movement of the joystick 80. If theoperator moves the thumbroller 100, the second input 136 is ignored. Ifthe operator releases the joystick 80, the first input 134 will settleto a zero value. If both first input 134 and second input 136 have azero value, then subsequent movement of the thumbroller 100 willgenerate a command 130 based on the second input 136. The commandarbitration block 210 may require the first input 134 and the secondinput 136 to have a zero value for a predetermined period of time, suchas 0.5 seconds, before generating the command 130 based on the secondinput 136. If there is a large difference between the command 130generated from the first input 134 and what the command 130 wasgenerated from the second input 136, the rate-shaping function 220 maybe employed.

There may be situations when there is a fault with either first input134 or second input 136. Refer to FIG. 7. The controller 140 will detecta fault when one of the inputs 134, 136 provides a value that is out ofan acceptable range. The value provided may be a duty cycle, a voltage,a current, or a CAN message.

When either first input 134 or second input 136 is determined bycontroller 140 to be out of range, that input is flagged as faulty andits input may be ignored by the controller 140. This may be known as“debouncing” the faulty signal. The controller then changes thegenerated command 130 to a value of zero. There may be some delaybetween when the fault is first detected and when the controller 140takes action to flag it as faulty. If a signal is flagged as faulty, anon-zero value detected in the other input may be ignored. In the caseof a faulted signal, the controller 140 may retain the “last known goodvalue” while a signal is outside of the valid range. Once the debouncetime has expired, the controller 140 considers the signal as faulty andsets a status flag to indicate the signal is faulty. Functionsdownstream in controller 140 may look at the status flag first beforedoing any operations based on the signal. If the signal is flagged asfaulty, the controller 140 may execute some failure mode functions. Thefunctions may assume that the input signal is zero, or it may performother actions depending on the requirements. Inputs 134 and 136 may beignored until both first input 134 and second input 136 have a zerovalue. The controller 140 may require both first input 134 and secondinput 136 have a zero value for a predetermined period of time beforeaccepting either input and generating a new non-zero command 130.

There may be a situation when a signal that has been flagged as faultywill come back into an acceptable range while a command 130 is beinggenerated based on the other input. In this case, the signal that hasbeen flagged as faulty will not be accepted by the controller 140 untilthat signal has a zero value. The controller 140 may require both thefirst input 134 and second input 136 to have a zero value for apredetermined period of time before the fault flag is removed from thesignal and accepted by the controller 140.

INDUSTRIAL APPLICABILITY

An example of a machine 10 may be a wheel loader. A wheel loadertypically operates in a cycle that includes loading and dumping. Loadingis typically from a pile of material, while dumping is typically intothe bed of a truck or into a hopper. At the beginning of the loadingportion of the cycle, the operator provides an input commanding the boom30 to be in a lowered position and the bucket 20 to be positioned toaccept material. The operator then drives the machine 10 into the pileof material where the power from the engine and the inertia of themachine 10 pushes the bucket 20 into the pile and loads the bucket 20with material. The loading portion of the cycle is fairly violent,causing rapid deceleration and pitching of the machine 10. The operatorthen provides an input that racks the bucket 20 back into a position tohold material and provides another input to raise the boom 30 in orderto lift the material from the pile. The operator then reverses themachine 10 away from the pile and drives to the side of the truck whileraising the boom 30 such that the bucket will clear the truck. Next, theoperator provides another input that tilts the bucket 20 toward thefront of the machine 10, dumping the material. The dumping portion ofthe cycle requires careful operation of the inputs of the machine 10 inorder to avoid contact with the truck and to prevent spillage ofmaterial.

Example inputs for the wheel loader loading cycle may include tiltingthe joystick 80 left and right to rack and dump the bucket 20respectively. Alternatively, the thumbroller 100 may be used to rack anddump the bucket 20. During the loading portion of the cycle, it may bepreferable for the operator to use the joystick tilt for commandingbucket 20 movement, as it is easy for the operator to keep his handgripped to the joystick 80. Alternatively, it may be preferable for theoperator to use the thumbroller 100 for the dumping portion of the cycleas it allows more precise operation. Therefore, the present disclosureallows the operator to use whichever input is more convenient in orderto perform the same function. A person of ordinary skill in the art willrecognize that any two joystick functions can be used to perform anymachine function using what is taught in the current disclosure. Forexample, boom operation could be performed by forward/reverse tilting ofthe joystick 80 and a rocker switch.

Another example of a machine 10 may be an excavator. An excavatortypically operates in a cycle that includes loading and dumping. Loadingis typically from unbroken ground, while dumping is typically into thebed of a truck. At the beginning of the loading portion of the cycle,the operator provides an input commanding the boom 30 and stick 35 to bein an extended position and the bucket 20 to be extended with the bucketteeth positioned to break into the ground. The operator then provides aninput that racks the bucket 20 back to break into the ground andprovides other inputs to curl the stick 35 the boom 30 in order to breakthe ground and lift the material from the ground. The loading portion ofthe cycle is fairly violent, causing and pitching of the machine 10. Theoperator then swings the machine 10 toward the side of the truck whileraising the boom 30 such that the bucket will clear the truck. Next, theoperator provides another input that tilts the bucket 20, dumping thematerial. The dumping portion of the cycle requires careful operation ofthe inputs of the machine 10 in order to avoid contact with the truckand to prevent spillage of material.

Example inputs for the excavator loading cycle may include tilting thejoystick 80 left and right to rack and dump the bucket 20, respectively.Alternatively, the rocker switch 110 may be used to rack and dump thebucket 20. During the loading portion of the cycle, it may be preferablefor the operator to use the joystick tilt for commanding bucket 20movement, as it is easy for the operator to keep his hand gripped to thejoystick 80. Alternatively, it may be preferable for the operator to usethe rocker switch 110 for the dumping portion of the cycle as it allowsmore precise operation.

What is claimed is:
 1. A method for generating a command for a work machine by arbitrating between inputs from a first input device and a second input device, each located on a joystick, comprising: receiving a first input from the first input device; receiving a second input from the second input device; wherein said first input and second input are capable of being received concurrently, generating a first command based on the first input if the first input has a non-zero value; and generating a second command based on the second input if the first input has a zero value and the second input has a non-zero value.
 2. The method of claim 1 wherein during a transition between generation of the first and second command, a third command is generated using a rate limit based on the difference between the first command and the second command.
 3. The method of claim 1 wherein the second command is generated based on the second input if the first input has a zero value for a predetermined period of time and the second input has a non-zero value.
 4. The method of claim 1 wherein if either of the first input or second input is out of acceptable range, a fourth command having a zero value is generated.
 5. The method of claim 4 wherein a second command is generated based on the second input after the second input has a zero value if the first value is out of the acceptable range.
 6. The method of claim 5 wherein a second command is generated based on the second input after the second input has a zero value for a predetermined period of time if after the first value is out of the acceptable range.
 7. A system for generating a command for a work machine by arbitrating between inputs from a first input device and a second input device comprising: a joystick having a first input device and a second input device; a controller for: receiving a first input from the first input device and second input from the second input device; wherein said first input and second input are capable of being received concurrently, generating a first command based on the first input if the first input has a non-zero value; and generating a second command based on the second input if the first input has a zero value and the second input has a non-zero value.
 8. The system of claim 7 wherein during a transition between generation of the first and second command, the controller generates a third command using a rate limit based on the difference between the first command and the second command.
 9. The system of claim 7 wherein the controller generates a second command based on the second input if the first input has a zero value for a predetermined period of time and the second input has a non-zero value.
 10. The system of claim 7 wherein the controller generates a fourth command having a zero value if either of the first input or second input is out of acceptable range.
 11. The method of claim 10 wherein the controller generates a second command based on the second input after the second input has a zero value if the first value is out of acceptable range.
 12. The method of claim 11 wherein a second command is generated based on the second input after the second input has a zero value for a predetermined period of time if the first value is out of acceptable range.
 13. A method for generating a command for a work machine by arbitrating between inputs from a first input device and a second input device, each located on a joystick, comprising: receiving a first input from the first input device; receiving a second input from the second input device; wherein said first input and second input are capable of being received concurrently, generating the command based on the earlier of either of the first input or second input having a non-zero value.
 14. The method of claim 13 wherein the generated command is based on a later input if the later input has a non-zero value after the first and second input have a zero value.
 15. The method of claim 14 wherein the generated command is based on an other input if the other input has a non-zero value after the first and second input values are zero for a predetermined period of time.
 16. The method of claim 13 wherein if either of the first input or second input is out of acceptable range, a fourth command having a zero value is generated.
 17. The method of claim 16 wherein a second command is generated based on the second input after the second input has a zero value if the first value is out of the acceptable range.
 18. The method of claim 17 wherein a second command is generated based on the second input after the second input has a zero value for a predetermined period of time if the first value is out of acceptable range.
 19. A system for generating a command for a work machine by arbitrating between inputs from a first input device and a second input device comprising: a joystick having a first input device and a second input device; a controller for: receiving a first input from the first input device; receiving a second input from the second input device; wherein said first input and second input are capable of being received concurrently, generating the command based on the earlier of either of the first input or second input having a non-zero value.
 20. The system of claim 19 wherein the controller generates the command based on a later input if the later input has a non-zero value after the first and second input have a zero value.
 21. The method of claim 20 wherein the controller generates the command based on an other input if the other input has a non-zero value after the first and second input values are zero for a predetermined period of time.
 22. The system of claim 19 wherein the controller generates a fourth command having a zero value if either of the first input or second input is out of acceptable range.
 23. The method of claim 22 wherein the controller generates a second command based on the second input after the second input has a zero value if the first value is out of acceptable range.
 24. The method of claim 23 wherein a second command is generated based on the second input after the second input has a zero value for a predetermined period of time if the first value is out of acceptable range. 